7 months ago
A Model Context Protocol (MCP) compliant server designed for comprehensive web research. It uses Tavily's Search and Crawl APIs to gather detailed information on a given topic, then structures this data in a format perfect for LLMs to create high-quality markdown documents.
Overview
Deep Research MCP Server ✨
Dream it, Pixel it — by Pink Pixel
🚀 Project Purpose
The Deep Research MCP Server is a Model Context Protocol (MCP) compliant server for comprehensive, up-to-date web research. It leverages Tavily's Search & Crawl APIs to gather, aggregate, and structure information for LLM-powered documentation generation.
🧩 Architecture Overview
- MCP Server (Node.js, TypeScript)
- Stdio Transport for agent/server communication
- Tavily API Integration (Search + Crawl)
- Configurable Documentation Prompt (default, ENV, or per-request)
- Structured JSON Output for LLMs
Architecture Diagram (Text)
[LLM/Agent]
│
▼
[Deep Research MCP Server]
│ ├─> Tavily Search API
│ └─> Tavily Crawl API
▼
[Aggregated JSON Output + Documentation Instructions]
✨ Main Features
- Multi-Step Research: Combines AI-powered search with deep content crawling
- Structured Output: JSON with query, search summary, findings, and doc instructions
- Configurable Prompts: Override documentation style via ENV or per-request
- Configurable Output Path: Specify where research documents and images should be saved
- Granular Control: Fine-tune search/crawl with many parameters
- MCP Compliant: Plug-and-play for agent ecosystems
- Resource Optimized: Memory tracking, auto-garbage collection, and hardware acceleration support
🛠️ Key Dependencies
- @modelcontextprotocol/sdk (v1.11.1) — MCP server framework
- @tavily/core (v0.5.2) — Tavily Search & Crawl APIs
- dotenv (v16.5.0) — Environment variable management
📁 File Structure
deep-research-mcp/
├── dist/ # Compiled JS output
├── src/
│ └── index.ts # Main server logic
├── assets/ # Project assets (logo)
├── README.md # Full documentation
├── OVERVIEW.md # (You are here!)
├── example_config.json # Example MCP config
├── package.json # Project metadata & dependencies
├── tsconfig.json # TypeScript config
├── CHANGELOG.md # Version history and changes
⚡ Usage & Integration
- Install & Run:
npx @pinkpixel/deep-research-mcp(quickest)- Or clone &
npm install, thennpm start
- Configure: Set
TAVILY_API_KEYin your environment (see README.md) - Integrate: Connect to your LLM/agent via MCP stdio
- Customize: Override documentation prompt via ENV or tool argument
- Output: Specify where research documents and images should be saved
- Performance: Enable hardware acceleration with
hardware_acceleration: trueparameter
🔄 Recent Updates
- Optimized Resource Usage: Reduced default crawl limits to prevent excessive memory consumption
- MCP Protocol Compliance: Fixed response structure to properly follow MCP specifications
- Improved Error Handling: Better error reporting and handling of timeouts
- Performance Optimizations: Added optional hardware acceleration (WebGPU) support
- Smarter Crawling: Added domain validation to focus crawling and prevent overly broad searches
See CHANGELOG.md for complete version history
📚 More Info
- See README.md for full usage, parameters, and troubleshooting
- Example config: example_config.json
- License: MIT
- Node.js: >=18.0.0 required
Made with ❤️ by Pink Pixel
Server Config
{
"mcpServers": {
"deep-research": {
"command": "npx",
"args": [
"-y",
"@pinkpixel/deep-research-mcp"
],
"env": {
"TAVILY_API_KEY": "tvly-YOUR_ACTUAL_API_KEY_HERE",
"DOCUMENTATION_PROMPT": "Your custom, detailed instructions for the LLM on how to generate markdown documents from the research data...",
"RESEARCH_OUTPUT_PATH": "/path/to/your/research/output/folder"
}
}
}
}